#ifndef LOGGER_H_
#define LOGGER_H_

#include "logger/Appender.h"
#include "types.h"

#define LOG_ERROR 1
#define LOG_WARN 2
#define LOG_INFO 3
#define LOG_DEBUG 4

//#define char ** LEVEL_NAME = new char {"ERROR", "WARN", "INFO", "DEBUG"}

class Logger {
private:
	int level;
	Appender * appender;

	void log (int level, String message, ...);
	void checkState ();

public:
	Logger ();

	void setAppender (Appender * appender);
	void setLevel (int level);

	void info (String message);
	void warn (String message);
	void debug (String message);
	void error (String message);
};

#endif /* LOGGER_H_ */
